package com.dfbz.demo04_Method;

import org.junit.Test;

import java.lang.reflect.Method;

/**
 * @author lscl
 * @version 1.0
 * @intro:
 */
public class Demo01_反射获取类的方法 {

    @Test
    public void test1() throws Exception{
        // 1. 字节码对象
        Class<TestEntity> testEntityClass = TestEntity.class;

        // 2. 根据方法名和参数列表获取指定方法
        Method aMethod = testEntityClass.getMethod("a",null);

        System.out.println(aMethod);
    }



    @Test
    public void test2() throws Exception{
        // 1. 字节码对象
        Class<TestEntity> testEntityClass = TestEntity.class;

        // 2. 根据方法名和参数列表获取指定方法
        Method bMethod = testEntityClass.getMethod("b", String.class);

        System.out.println(bMethod);
    }



    @Test
    public void test3() throws Exception{
        // 1. 字节码对象
        Class<TestEntity> testEntityClass = TestEntity.class;

        // 2. 根据方法名和参数列表获取指定方法(如果不是public修饰的要使用getDeclaredMethod)
        Method cMethod = testEntityClass.getDeclaredMethod("c", null);

        System.out.println(cMethod);
    }



    @Test
    public void test4() throws Exception{
        // 1. 字节码对象
        Class<TestEntity> testEntityClass = TestEntity.class;

        // 2. 获取静态方法(静态方法和普通方法在获取上没有任何的区别)
//        Method dMethod = testEntityClass.getMethod("d", null);
        Method eMethod = testEntityClass.getDeclaredMethod("e", null);

        System.out.println(eMethod);
    }



}
